package abstract01;

/**
 * 画一个形状,求出它的周长和面积
 * 长方形:
 *   求周长:2*(长+宽)
 *   求面积:长*宽
 * 正方形:
 *   求周长:4*边长
 *   求面积:边长*边长
 * 抽象方法引入:
 *    如果这个方法的方法体无法确定,我们需要把这个方法定义为抽象方法
 *    修饰符 abstract 返回值类型 方法名(形参列表);
 *  抽象类引入:
 *    一旦一个类含有抽象方法,那么这个类必须是抽象类
 *    抽象类无法创建对象,因为抽象类里面的抽象方法调用没有意义
 *   抽象类定义一般是作为体系的规范,约束子类必须实现父类的某些方法
 *  我们一般不直接使用抽象类而是通过创建它的子类对象去使用
 */
//形状类
public class Demo {
    public static void main(String[] args) {
        Square square = new Square();
        square.side = 16;
        System.out.println(square.getPerimeter());
        System.out.println(square.getArea());
        Rectangle rectangle = new Rectangle();
        rectangle.length = 10;
        rectangle.width = 12;
        System.out.println(rectangle.getPerimeter());
        System.out.println(rectangle.getArea());
    }
}
